from django import forms
from django.utils.translation import ugettext_lazy as _

#from amway.models import Cliente, Pedido,  Inventario, Producto
#from perfil.models import Departamento, Ciudad

################################################################################
#date_dict = { 'class' : 'date-pick'  }
#nombre_cliente_dict = {'id' : 'nombrecliente', 'class' : 'cliente'}
depto_dict = {'id' : 'departamento'}
ciudad_dict = {'id' : 'ciudad'}
#prod_dict = {'id' : 'productos', 'size' : '35'}
#inv_dict = { 'readonly' : 'readonly'  }
#################################################################################
#class AddClienteForm(forms.Form):    
#    def __init__(self, *args, **kwargs):
#        super(AddClienteForm, self).__init__(*args, **kwargs)
#        self.fields['departamento'].choices = [('','----------')] + [(d.codigo, d.nombre) for d in Departamento.objects.all().order_by('nombre')]
#        self.fields['ciudad'].choices = [('','----------')]       
#        
#    nombre = forms.CharField(max_length=100)
#    apellido = forms.CharField(max_length=100)
#    email = forms.EmailField()
#    telefono = forms.CharField(required=False)
#    movil = forms.CharField(required=False)
#    fecha_nacimiento = forms.DateField(widget=forms.TextInput(attrs=date_dict))
#    departamento = forms.ChoiceField(widget=forms.Select(attrs=depto_dict))
#    ciudad = forms.ModelChoiceField(Ciudad.objects, widget=forms.Select(attrs=ciudad_dict), required=False)      
#    
#    def save(self, usuario):        
#        cod_cliente = Cliente.objects.set_codigo(usuario)
#        activo = 1
#        
#        pais = Pais.objects.get(codigo__exact=170)
#        departamento = Departamento.objects.get(codigo__exact=int(self.cleaned_data['departamento']))
#        ciudad = Ciudad.objects.get(codigo__exact=int(self.cleaned_data['ciudad'].codigo))
#        
#        
#        cliente = Cliente(codigo=cod_cliente, nombre = self.cleaned_data['nombre'],
#                          apellido =self.cleaned_data['apellido'], email=self.cleaned_data['email'],
#                          telefono=self.cleaned_data['telefono'], movil=self.cleaned_data['movil'], 
#                          fecha_nacimiento=self.cleaned_data['fecha_nacimiento'], activo=activo, usuario=usuario,
#                          pais=pais, departamento=departamento, ciudad=ciudad)
#        cliente.save()        
#################################################################################
#class EditClienteForm(forms.Form):    
#    nombre = forms.CharField(max_length=100)
#    apellido = forms.CharField(max_length=100)
#    email = forms.EmailField()
#    telefono = forms.CharField(required=False)
#    movil = forms.CharField(required=False)
#    fecha_nacimiento = forms.DateField(widget=forms.TextInput(attrs=date_dict))    
#    def datos_cliente(self, cod_cliente):
#        cliente = Cliente.objects.get_datos_cliente(cod_cliente)
#        self.fields['nombre'].initial = cliente.nombre
#        self.fields['apellido'].initial = cliente.apellido
#        self.fields['email'].initial = cliente.email
#        self.fields['telefono'].initial = cliente.telefono
#        self.fields['movil'].initial = cliente.movil
#        self.fields['fecha_nacimiento'].initial = cliente.fecha_nacimiento        
#    ############################################################################
#    def save(self, cod_cliente, usuario):
#        cliente = Cliente(codigo=cod_cliente, nombre = self.cleaned_data['nombre'],
#                          apellido =self.cleaned_data['apellido'], email=self.cleaned_data['email'],
#                          telefono=self.cleaned_data['telefono'], movil=self.cleaned_data['movil'], 
#                          fecha_nacimiento=self.cleaned_data['fecha_nacimiento'], activo=1, usuario=usuario)
#        cliente.save()
#################################################################################
#class AddPedidoClienteForm(forms.Form):
#    nombre_cliente = forms.CharField(max_length=100, widget=forms.TextInput(attrs=nombre_cliente_dict))
#    fecha_pedido = forms.DateField(widget=forms.TextInput(attrs=date_dict))
#    fecha_entrega = forms.DateField(widget=forms.TextInput(attrs=date_dict))   
#    def save(self, usuario):
#        
#        nombre = self.cleaned_data['nombre_cliente']        
#        cliente = Cliente.objects.get(nombre__exact=nombre, usuario=usuario)       
#        codigo = Pedido.objects.set_codigo(cliente)        
#        pedido = Pedido(codigo=codigo, fecha_pedido=self.cleaned_data['fecha_pedido'],
#                                   fecha_entrega=self.cleaned_data['fecha_entrega'], saldo=0, cliente=cliente )        
#        pedido.save()
#################################################################################
#################################################################################
#################################################################################
#################################################################################
#class AddInventarioForm(forms.Form):
#    factura = forms.CharField()
#    fecha_ingreso = forms.DateField(widget=forms.TextInput(attrs=date_dict))
#    valor_pedido = forms.CharField(widget=forms.TextInput(attrs=date_dict))    
#    def save(self, usuario):
#        factura = self.cleaned_data['factura']
#        fecha  = self.cleaned_data['fecha_ingreso']
#        valor = self.cleaned_data['valor_pedido']        
#        inventario = Inventario(codigo=factura, fecha_ingreso=fecha, valor=valor, usuario=usuario)
#        inventario.save()
#        return inventario
#################################################################################
#class AddProductoInventarioForm(forms.Form):
#    producto = forms.CharField(widget=forms.TextInput(attrs=prod_dict))    
#    cantidad = forms.CharField()
#    inventario = forms.CharField(widget=forms.HiddenInput())
#    #inventario = forms.CharField(widget=forms.TextInput(inv_dict), required=False)
#    
#    def datos_inventario(self, factura_id):
#        self.fields['inventario'].initial = factura_id
#    
#    
#    #def clean_producto_inventario(self):
#    #    producto = Producto.objects.get(referencia__iexact=self.cleaned_data['producto'])
#    #    inventario = Inventario.objects.get(codigo__exact=self.cleaned_data['inventario'])
#    #    try:
#    #        inv = Productos_x_inventario.objects.get(producto=producto, inventario=inventario)
#    #    except Productos_x_inventario.DoesNotExist:
#    #        return self.cleaned_data['producto'], self.cleaned_data['inventario']
#    #    raise forms.ValidationError(_(u'Este producto ya se encuentra dentro de este pedido, debe agregar un producto distinto.'))
#    
#    #def clean(self):
#    #    pr = self.cleaned_data.get('producto')
#    #    iv = self.cleaned_data.get('inventario')
#    #    producto = Producto.objects.get(referencia__iexact=pr)
#    #    inventario = Inventario.objects.get(codigo__exact=iv)
#    #    
#    #    try:
#    #        invent = Productos_x_inventario.objects.get(producto=producto, inventario=inventario)           
#    #    except Productos_x_inventario.DoesNotExist:
#    #        return self.cleaned_data
#    #    raise forms.ValidationError(_(u'Este producto ya se encuentra dentro de este pedido, debe agregar un producto distinto.'))
# 
#    
#    
#    
#    def save(self):
#        producto = Producto.objects.get(referencia__exact=self.cleaned_data['producto'])
#        #inventario = Inventario.objects.get(codigo__exact=factura_id)
#        inventario = Inventario.objects.get(codigo__exact=self.cleaned_data['inventario'])
#        print inventario
#        #pr_in = Productos_x_inventario(producto=producto, inventario=inventario,
#        #                               cantidad=self.cleaned_data['cantidad'])
#        #pr_in.save()
################################################################################
################################################################################
################################################################################
################################################################################
#class TempForm(forms.Form):
#    def __init__(self, *args, **kwargs):
#        super(TempForm, self).__init__(*args, **kwargs)
#        self.fields['departamento'].choices = [('','----------')] + [(d.codigo, d.nombre) for d in Departamento.objects.all().order_by('nombre')]
#        self.fields['ciudad'].choices = [('', '----------')]
#    
#    #telefono = forms.CharField(required=False)
#    departamento = forms.ChoiceField(widget=forms.Select(attrs=depto_dict))
#    ciudad = forms.ModelChoiceField(Ciudad.objects, widget=forms.Select(attrs=ciudad_dict), required=False)
#    
#    def print_form(self, id):
#        
#        ciudad = Ciudad.objects.get(codigo__exact=int(id)) 
#        print ciudad
    
    